<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<script>
    var arr=[0,0,1,'1',2,3];
    console.info(arr);

    //indexOf
    function uniqueA(arr){
        var R=[];
        for(var i= 0,L=arr.length;i<L;i++){
            if(!~R.indexOf(arr[i])){
                R.push(arr[i]);
            }
        }
        console.log('A:',R);
        return R;
    }
    uniqueA(arr);

    //双重循环
    function uniqueB(arr) {
        if(!arr.length)return arr;
        var R=[],flag=false;
        for(var i= 0,L1=arr.length;i<L1;i++){
            flag=false;
            for(var j= R.length;j--;){
                if(R[j]===arr[i]){
                    flag=true;
                    break;
                }
            }
            if(!flag){
                R.push(arr[i]);
            }
        }
        console.log('B:',R);
        return R;
    }
    uniqueB(arr);

    //对象键名唯一特性
    function uniqueC(arr){
        var obj={},R=[];
        for(var i= 0,L=arr.length;i<L;i++){
            if(!(arr[i] in obj)){
                obj[arr[i]]=true;
                R.push(arr[i]);
            }
        }
        console.log('C:',R);
        return R;
    }
    uniqueC(arr);

    //随机抽取一个值
    function uniqueD(arr){
        var R=[],L=arr.length,i;
        while(L){
            i=Math.floor(Math.random()*arr.length);
            if(i in arr){
                R.push(arr[i]);
                delete arr[i];
                L--;
            }
        }
        console.log('D:',R);
        return R;
    }
    uniqueD(arr);


</script>
</body>
</html>